﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BUS;

namespace QuanLyThuVien
{
    public partial class frmLapTheDG : Form
    {
        LoaiDocGiaBUS LoaiDGBUS;
        DocGiaBUS DocGiaBUS;
        private frmMain mainForm = null;

        public frmLapTheDG(Form callingForm)
        {
            mainForm = callingForm as frmMain;
            LoaiDGBUS = new LoaiDocGiaBUS();
            DocGiaBUS = new DocGiaBUS();
            InitializeComponent();
        }
        private void frmLapTheDG_Load(object sender, EventArgs e)
        {
            foreach (string s in LoaiDGBUS.GetListLoaiDocGia())
            {
                comboBox_loaiDG.Items.Add(s);
            }
        }
        private void button_huy_Click(object sender, EventArgs e)
        {
            this.Close();
        }
        private void button_luu_Click(object sender, EventArgs e)
        {
            if (InputFormat.formatString(tb_hoTen.Text).Length == 0 ||
                InputFormat.formatString(tb_diaChi.Text).Length == 0 ||
                tb_email.Text.Length == 0 ||
                comboBox_loaiDG.Text.Length == 0)
            {
                MessageBox.Show("Cần cung cấp đầy đủ thông tin", "Thông báo");
            }
            else if (!InputFormat.isName(InputFormat.formatString(tb_hoTen.Text)))
            {
                MessageBox.Show("Tên độc giả không hợp lệ", "Thông báo");
            }
            else if (!InputFormat.isEmail(tb_email.Text))
            {
                MessageBox.Show("Email không hợp lệ", "Thông báo");
            }
            else if (!InputFormat.validDateTime(dateTime_ngaySinh.Value.Date) || !InputFormat.validDateTime(datetime_NgaylapThe.Value.Date))
            {
                MessageBox.Show("Thời gian không hợp lệ", "Thông báo");
            }
            else if (!Regulations.EligibleDocGia(dateTime_ngaySinh.Value.Date, datetime_NgaylapThe.Value.Date))
            {
                MessageBox.Show("Tuổi không hợp lệ", "Thông báo");
            }
            else
            {
                ThamSoBUS thamSoBUS = new ThamSoBUS();
                DateTime ngayHetHan = datetime_NgaylapThe.Value.AddMonths(thamSoBUS.GetGiaTriThamSo(thamSoBUS.ThoiHanThe));
                if (DocGiaBUS.InsertDocGia(
                        InputFormat.formatString(tb_hoTen.Text),
                        InputFormat.formatString(tb_diaChi.Text),
                        comboBox_loaiDG.Text,
                        dateTime_ngaySinh.Value.Date.ToString(),
                        tb_email.Text,
                        datetime_NgaylapThe.Value.Date.ToString(),
                        ngayHetHan.ToString()))
                {
                    mainForm.LoadDataGrid_DSDocGia();
                    MessageBox.Show("Thành công", "Thông báo");
                    LamMoi();
                }
                else MessageBox.Show("Tồn tại thẻ độc giả. Lập thẻ không thành công!", "Thông báo");
            }
        }
        private void LamMoi()
        {
            tb_diaChi.Text = "";
            tb_email.Text = "";
            tb_hoTen.Text = "";
            comboBox_loaiDG.Text = "";
        }
        private void tb_hoTen_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!char.IsControl(e.KeyChar) && char.IsDigit(e.KeyChar))
            {
                e.Handled = true;
            }
        }
    }
}
